<?php

require("Base.php");

class class_PedidosExt extends class_Base
{
  function __construct() {
    parent::__construct();
  }


  public function method_alta_pedido_ext($params, $error) {
  	$p = $params[0];

  	$set = $this->prepararCampos($p->model);
  	
	$sql = "INSERT pedido_ext SET " . $set . ", fecha = NOW()";
	mysql_query($sql);
	$insert_id = mysql_insert_id();
	
	foreach ($p->detalle as $item) {
		$item->id_pedido_ext = $insert_id;
		$set = $this->prepararCampos($item);
		$sql = "INSERT pedido_ext_detalle SET " . $set;
		mysql_query($sql);
	}
	
	$resultado = $this->method_leer_externos($params, $error);
	
	return $resultado;
  }

  public function method_leer_pedido($params, $error) {
	$resultado = "";
	$resultado->internos = $this->method_leer_internos($params, $error);
	$resultado->externos = $this->method_leer_externos($params, $error);
	
	return $resultado;
  }
  
  public function method_leer_internos($params, $error) {
	$resultado = array();
	
	$sql="SELECT" .
			" '0' AS seleccionado" .
			", pedido_suc_detalle.id_producto_item" .
			", pedido_suc.id_sucursal" .
			", pedido_suc.id_fabrica" .
			", sucursal.descrip AS sucursal" .
			", fecha" .
			", fabrica.descrip AS fabrica" .
			", producto.descrip AS producto" .
			", producto.iva" .
			", producto_item.precio_lista" .
			", color.descrip AS color" .
			", capacidad" .
			", unidad.id_unidad" .
			", unidad.descrip AS unidad" .
			", pedido_suc_detalle.cantidad" .
		" FROM " .
			"(" .
				"(" .
					"(" .
						"(" .
							"(" .
								"(" .
									"pedido_suc INNER JOIN sucursal USING(id_sucursal)" .
								") INNER JOIN fabrica USING(id_fabrica)" .
							") INNER JOIN pedido_suc_detalle USING(id_pedido_suc)" .
						") INNER JOIN producto_item USING(id_producto_item)" .
					") INNER JOIN color USING(id_color)" .
				") INNER JOIN unidad USING(id_unidad)" .
			") INNER JOIN producto USING(id_producto)" .
		" GROUP BY pedido_suc_detalle.id_pedido_suc_detalle" .
		" ORDER BY sucursal, fecha, fabrica, producto"
	;
	$rsPedidoSuc = mysql_query($sql);
	while ($regPedidoSuc = mysql_fetch_object($rsPedidoSuc)) {
		$regPedidoSuc->seleccionado = (bool) $regPedidoSuc->seleccionado;
		$regPedidoSuc->capacidad = (float) $regPedidoSuc->capacidad;
		$regPedidoSuc->cantidad = (float) $regPedidoSuc->cantidad;
		$regPedidoSuc->precio_lista = (float) $regPedidoSuc->precio_lista;
		$regPedidoSuc->plmasiva = $regPedidoSuc->precio_lista + ($regPedidoSuc->precio_lista * (float) $regPedidoSuc->iva / 100);
		$resultado[] = $regPedidoSuc;
	}
	return $resultado;
  }
  
  public function method_leer_externos($params, $error) {
	$resultado = array();
	
	$sql="SELECT pedido_ext.*, fabrica.descrip AS fabrica, transporte.descrip AS transporte FROM (pedido_ext INNER JOIN fabrica USING(id_fabrica)) INNER JOIN transporte USING(id_transporte) ORDER BY fecha";
	$rsPedidoExt = mysql_query($sql);
	while ($regPedido = mysql_fetch_object($rsPedidoExt)) {
		$regPedido->detalle = array();
		$sql="SELECT pedido_ext_detalle.id_pedido_ext_detalle, pedido_ext_detalle.cantidad, producto_item.id_producto_item, producto_item.id_unidad, producto_item.precio_lista, producto.descrip AS producto, producto.iva, producto_item.capacidad, color.descrip AS color, unidad.descrip AS unidad";
		$sql.=" FROM ((((pedido_ext_detalle INNER JOIN producto_item USING (id_producto_item)) INNER JOIN producto USING(id_producto)) INNER JOIN color USING (id_color)) INNER JOIN unidad USING (id_unidad))";
		$sql.=" WHERE pedido_ext_detalle.id_pedido_ext='" . $regPedido->id_pedido_ext . "'";
		$rsDetalle = mysql_query($sql);
		while ($regDetalle = mysql_fetch_object($rsDetalle)) {
			$regDetalle->capacidad = (float) $regDetalle->capacidad;
			$regDetalle->precio_lista = (float) $regDetalle->precio_lista;
			$regDetalle->plmasiva = $regDetalle->precio_lista + ($regDetalle->precio_lista * (float) $regDetalle->iva / 100);
			$regDetalle->cantidad = (float) $regDetalle->cantidad;
			$regPedido->detalle[] = $regDetalle;
		}
		$resultado[] = $regPedido;
	}
	return $resultado;
  }
}

?>